/*
 Copyright 2008-2011 the original author or authors

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 */

package org.freshvanilla.rmi;

import java.util.Map;

import org.freshvanilla.lang.MetaClasses;
import org.freshvanilla.utils.Classes;

public class AbstractPojo {

    private static final MetaClasses META = new MetaClasses(Classes.getClassLoader(AbstractPojo.class));

    public Map<String, Object> asMap() {
        return MetaClasses.asMap(META, this);
    }

    @Override
    public int hashCode() {
        return MetaClasses.hashCodeFor(META, this);
    }

    @Override
    public boolean equals(Object obj) {
        return MetaClasses.equals(META, this, obj);
    }

    @Override
    public String toString() {
        return MetaClasses.asString(META, this);
    }

}
